Mac-to-PC Hexen Deathmatches By Ethan Butterfield primus@aimnet.com http://www.aloha.net/~ethan/Hexen.html After spending more than an hour working on the problem, I was finally able to make cross-platform games work. THIS IS NOT A SIMPLE TASK. Hexen is nowhere as forgiving as Doom for cross-platform deathmatches. If (and I cannot emphasize this more than this) EACH AND EVERY SINGLE SETTING IS NOT CORRECT, you will either not be able to start a game at all, or immediately crash with a Consistency Error when the game starts up. Here's some general hints to get things started: 1) Make absolutely sure the PCs have upgraded themselves to Hexen v1.1. Hexen v1.0 Mac is actually the v1.1 IBM engine, and will not work against the v1.0 IBM version. Also, the full Mac version will not work against the PC demo, and you cannot patch the PC demo to v1.1, as the .WAD file is not complete. The updater is available at: ftp://ftp.cdrom.com/.6/idgames/idstuff/hexen/hexnrp11.exe Have your PC friends download and run the patcher. How do you tell what version they're running? When Hexen starts, at the top middle of the screen it'll say Version 1.0 or Version 1.1. 2) COMMUNICATE. If you're playing over a modem, call your friend up to verbally agree on all of the game settings. If they're on a LAN, call them up and talk things over. Write the settings down. Have the Mac people start up Hexen early and go to the Multiplayer dialog and set things up while the PC people are staring at the prompt. One missed setting will crash the game. 3) Tell your PC people to run Hexen from the command line. DON'T USE DM.EXE! DM.EXE is a network game utility that just does not work when Macs are figured in to the equation. It took me 45 minutes to figure out that DM.EXE was the problem in our LAN games. 4) A good rule of thumb is that for every black dot or check mark in the Mac Multiplayer settings dialog, there must be at least one corresponding PC command-line parameter. (The only exception is the setting for character class on the PC. It can be safely left blank.) Also, even though it's supposedly the default, I find that defining the number of players also tends to make setting up a net game easier. So, at the minimum, the PC will need to have a -skill parameter, and a -nodes parameter. 5) You have crashed if: a) The computer hangs on "Got start packet..." b) All you are presented with is a rock wall c) You die with a Consistency Error IPX Games If you're playing over a LAN that supports IPX, run IPXSETUP.EXE with the command-line parameters. There is only one IPXSETUP-specific parameter, the -port parameter. This determines which IPX socket you will play on. Even though it defaults to 0, put the -port 0 parameter into the parameter string. Sometimes, the defaults won't work. Also, do make sure that you have MacIPX installed. You can get MacIPX from Novell's current client for Mac, version 5.11. Download the Novell Client for Mac OS from Novell's WWW site. Modem Games Modem games are awful to set up. Let me repeat that: MODEM GAMES ARE AWFUL TO SET UP. For some reason, Hexen is about 10 percent as stable on a modem game as it is over a LAN. I have found that even if all the settings are correct, a good percentage of the time the game still crashes. Of course, since this was the reason most of you bought Hexen in the first place, it kind of puts a damper on things, doesn't it? This little bit of text is clipped from the PC Hexen v1.1 README file: VERY IMPORTANT! You will need to run the SETUP program and select Choose Modem from the Network/Modem/Serial menu so you can set your modem init string correctly. Merely select the modem and press Enter and SETUP will create a new MODEM.CFG file that corresponds to your modem (the MODEM.CFG file is used by SERSETUP for initing the modem.) If your modem is not in the list, you will most likely need to edit the MODEM.CFG file in the Hexen directory. The first line of the file is an initialization string that: * Turns off error-correction * Turns off data-compression The MODEM.CFG file has a Hayes-standard init string like this: AT Z S=46 &Q0 &D0 You just add your own commands after the "AT Z " if your modem doesn't work with these settings-- dig up your modem manual for the correct settings. The second line is a hangup string used when you quit Hexen. The third line is the baud rate at which you want your COM port set. The legal settings are: 9600, 14400, 38400, 57600. If the modem connection isn't working when you call your friend, have him call you instead. Try setting the modem to GENERIC (in the SETUP.EXE program) if your modems don't connect. If you STILL can't get the modems to connect, both of you should run your favorite COMM programs and connect with 9600, no error correction and no data compression. Then quit the COMM program and keep the connection going. Then just run SERSETUP with a -COM# parameter (as if you were running a null-modem game) since you're already connected. Some other considerations: As with Doom I & II. things seem to work better if the PC player calls the Mac player. Connect at the same baud rate. The PC uses SERSETUP.EXE to connect and play. There are many modem-specific parameters, and most of them are necessary. The main ones are -com#, -port #, -irq #, -dial #, and -#, the baud rate parameter. The concise list is later in this document. PC Command Line Parameters IPXSETUP.EXE-specific parameters ------------------------------------ NODES determines the number of players. If unspecified, defaults to 2. -nodes # (where # is the # of players: 2, 3...) PORT determines the IPX socket address. If unspecified, defaults to 0. -port # SERSETUP.EXE-specific parameters ------------------------------------ DIAL tells the program which number to dial, if you're going to do the calling. -dial ANSWER puts your modem into Answer mode so someone can call you and play Hexen. -answer COM specifies which COM port your modem or serial cable is connected to. Very important! -com # (where # is the COM port #1-4) 8250 tells SERSETUP to set the UART to 8250. Just in case your 16550 UART is acting up at the higher speed. -8250 IRQ sets the IRQ for the COM port. -irq PORT sets the COM I/O port that SERSETUP uses to communicate with your modem. To use hexadecimal, such as the number 0x3f8, you would type "-port 0x3f8". -port A number sets the baud rate of your COM port, overriding the value in the MODEM.CFG if you're running a modem game. Legal values are 9600, 14400, 38400, 57600. -14400 General parameters --------------------- LOADGAME allows you to start Hexen from a specified save game. Instead of using the saved game name, simply enter the number that corresponds to the slot you saved the game to on the SAVE GAME screen (0-5). -loadgame <# of the game> DEATHMATCH starts Hexen as a DeathMatch game. If you don't enter DEATHMATCH as a command line parameter, Hexen will default to the Cooperative mode. -deathmatch ALTDEATH specifies respawning items during DEATHMATCH. -deathmatch -altdeath NOTE: You do NOT have to specify -deathmatch -altdeath in order to select the AltDeathMatch mode. Only -altdeath is needed. SKILL sets the skill level (1-5) you wish to play. Only useful with -warp -- see below. -skill <# of skill level> CLASS determines what character class you will be. 0 is the Fighter, 1 is the Cleric, and 2 is the Mage. -class <#> (where # is 0, 1 or 2.) RANDCLASS puts the game into Random mode, in which whenever you die, you come back randomly as one of the 3 character classes. ALL stations must specify this flag in order for it to work. -randclass CONFIG allows you to use your configuration file from any directory you choose. This is primarily for diskless workstations that don't have a C: drive to save config information to. You need to rename the default.cfg file created by the SETUP program to a directory and name of your choosing to avoid conflicts. -config (Ex. -config f:\Hexen\data\myconfig.cfg) NOMONSTERS allows you to start playing with NO MONSTERS running around! This is great for DeathMatch where, really, the monsters just get in the way. Only useful with -warp -- see below. -nomonsters NOJOY isn't what it sounds like. It just disables your joystick. -nojoy NOMOUSE disables your mouse. -nomouse NOSOUND turns off the sound while Hexen is playing. -nosound NOMUSIC turns off the music while Hexen is playing. -nomusic NOSFX turns off special effects sounds (like monsters growling, guns firing, etc.) while Hexen is playing. -nosfx PLAYDEMO runs a demo you've previously recorded, using RECORD. -playdemo RECORD tells Hexen to record as a demo the game you are starting. Demo files will be saved as .lmp. -record MAXDEMO xxx If you want to record a demo bigger than 128k, use this option. xxx will be the size (in kilobytes) of the demo. example -MAXDEMO 1024 will record a one megabyte demo. -record -maxdemo xxx RESPAWN tells Hexen that, yes, you are bad, and yes, you want all the monsters to respawn around eight seconds after you kill them. The NIGHTMARE skill level already does this. Note that using -respawn and -nomonsters at the same time is a dumb thing to do. Only useful with -warp -- see below. -respawn TURBO xxx gives you a speed boost. This is great in DeathMatch! The value xxx can be from 0 to 250. The other player(s) will be notified of your speed increase! THIS IS CONSIDERED CHEATING IN SINGLE PLAYER MODE! -turbo xxx @ will allow you to specify a Response file that Hexen will read additional command-line parameters from. For example, typing 'hexen @MYPARMS' will tell Hexen to look in the MYPARMS file for additional command-line parameters. The file format is simply one parameter per line with a carriage return to terminate the line. Each parameter is typed exactly as you would type it on the DOS command-line. FAST will make the monsters move and shoot up to 3 times faster, just as if you were playing in Nightmare mode, but without the respawning. Only useful with -warp -- see below. -fast TIMER <# of minutes> will make Hexen exit the current level after the specified amount of minutes, when it goes to the intermission. This option is only useful in DeathMatch mode. -timer xxx WARP <# of level> starts Hexen out right at the level you specify. For instance, to start at the first level, you'd type "-warp 1". The following command-line parameters are ONLY available while using the -WARP parameter: -fast, -nomonsters, -skill, -respawn -warp xx Some Examples A typical IPX setup would look like this: ipxsetup -nodes 4 -port 0 -altdeath -warp 12 -skill 4 This tells Hexen to look for a 4-player Alt-Deathmatch on IPX socket 0, starting on level 12 at the Hard skill level. Note that even though IPX socket 0 is the default, it is implicitly specified in the parameters. A modem setup might look like this: sersetup -dial 1111111 -com1 -port 220 -irq 5 -57600 -nodes 2 -deathmatch -warp 2 -skill 3 This tells Hexen to start a modem game, dialing 111-1111, using the modem that is on COM1, port 220, IRQ 5, connect at 57600, to play a deathmatch starting on level 2 at the Medium skill level. Note that -nodes 2 is implicitly defined. Some Final Words The material presented here is a guide, and will by no means guarantee you 100 percent connections, especially over a modem. Following the tips here should, though, increase your percentage of reliable connects. Hopefully.